﻿using System.Collections.Generic;
using System.ServiceModel;
using StockholmsStad.Runtime.Serialization.DataContract;
using StockholmsStad.Runtime.Serialization.DataContract.Enums;
using StockholmsStad.Utilities.Exceptions;
using System;

namespace StockholmsStad.ServiceModel.Interfaces
{
    /// <summary>
    /// 
    /// </summary>
    [ServiceContract]
    public interface IMinisterService
    {

        //TODO Flytta alla metoder som har men Minster till denna tjänst

        /// <summary>
        /// 
        /// </summary>
        /// <param name="user"></param>
        /// <param name="partOfName"></param>
        /// <param name="assignmentStartDate"></param>
        /// <param name="assignmentEndDate"></param>
        /// <param name="isActive"></param>
        /// <returns></returns>
        [OperationContract]
        [FaultContract(typeof(StockholmStadApplicationErrorFault))]
        [FaultContract(typeof(StockholmStadSystemErrorFault))]
        List<Minister> GetMinisters(User user, string partOfName, DateTime? assignmentStartDate,
                                    DateTime? assignmentEndDate, bool isActive);
    }
}
